repo: Add ostree_repo_write_regfile
authorColin Walters <walters@verbum.org>
Fri, 9 Apr 2021 00:35:54 +0000 (00:35 +0000)
committerColin Walters <walters@verbum.org>
Fri, 9 Apr 2021 21:54:44 +0000 (21:54 +0000)
commit6f84aff0ae72b6b6b8b0b1c388c6a937c32160c8
tree657b47c548e8980556b731288291b4b8ad7069f9
parent020f6cb6521c2b237871d194488cc59079beed6a
repo: Add ostree_repo_write_regfile

This API is push rather than pull, which makes it much more
suitable to use cases like parsing a tar file from external
code.

Now, we have a large mess in this area internally because
the original file writing code was pull based, but static
deltas hit the same problem of wanting a push API, so I added
this special `OstreeRepoBareContent` just for writing regular
files from a push API.

Eventually...I'd like to deprecate the pull based API,
and rework things so that for regular files the push API
is the default, and then `write_content_object()` would
be split up into archive/bare cases.

In this world the `ostree_repo_write_content()` API would
then need to hackily bridge pull to push and it'd be
less efficient.

Anyways for now due to this bifurcation, this API only
works on non-archive repositories, but that's fine for
now because that's what I want for the `ostree-ext-container`
bits.
Makefile-libostree.am
apidoc/ostree-sections.txt
src/libostree/libostree-devel.sym
src/libostree/ostree-content-writer.c [new file with mode: 0644]
src/libostree/ostree-content-writer.h [new file with mode: 0644]
src/libostree/ostree-repo-commit.c
src/libostree/ostree-repo-private.h
src/libostree/ostree-repo.h
src/libostree/ostree-types.h
tests/test-core.js
tests/test-repo.c